package com.librelato.bean;

import java.util.Date;

import com.librelato.negocio.bean.IBeanGenerico;

public class ProdutoBean implements IBeanGenerico, Comparable<ProdutoBean> {

	private static final long serialVersionUID = 8915127605256836591L;

	private String codigo;

	private String descricao;

	private String unidMedida;

	private String segUniMedida;

	private Double quantidade;

	private Date necessidade;

	private String local;

	private CentroCustoBean centroCusto;

	private String ordemProd;

	private String observacao;

	private String grupo;

	private String grupoDesc;
	
	private String grupoPai;

	private Integer leadTime;

	private String itemPosicao;

	private Double qtdeAtendida;

	private Date dtEntrega;

	private Double vlTotal;

	private Double ipi;

	private String statusProduto;

	private Double pontoPedido;

	private Double loteEconomico;

	private Long diasFaltantes;

	private Double preco;

	private Double icms;

	private Date vigencia;

	private Double saldoAtual;

	private String filial;
	
	private String itemPosicaoSol;
	
	private String codigoProjeto;

	public ProdutoBean() {
	}

	public ProdutoBean(String codigo, String descricao, String unidadeMedida) {
		this.codigo = codigo;
		this.descricao = descricao;
		this.unidMedida = unidadeMedida;
	}

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Double getQuantidade() {
		return quantidade;
	}

	public void setQuantidade(Double quantidade) {
		this.quantidade = quantidade;
	}

	public Date getNecessidade() {
		return necessidade;
	}

	public void setNecessidade(Date necessidade) {
		this.necessidade = necessidade;
	}

	public String getLocal() {
		return local;
	}

	public void setLocal(String local) {
		this.local = local;
	}

	public CentroCustoBean getCentroCusto() {
		return centroCusto;
	}

	public void setCentroCusto(CentroCustoBean centroCusto) {
		this.centroCusto = centroCusto;
	}

	public String getOrdemProd() {
		return ordemProd;
	}

	public void setOrdemProd(String ordemProd) {
		this.ordemProd = ordemProd;
	}

	public String getObservacao() {
		return observacao;
	}

	public void setObservacao(String observacao) {
		this.observacao = observacao;
	}

	public String getUnidMedida() {
		return unidMedida;
	}

	public void setUnidMedida(String unidMedida) {
		this.unidMedida = unidMedida;
	}

	public String getGrupo() {
		return grupo;
	}

	public void setGrupo(String grupo) {
		this.grupo = grupo;
	}

	public String getGrupoDesc() {
		return grupoDesc;
	}

	public void setGrupoDesc(String grupoDesc) {
		this.grupoDesc = grupoDesc;
	}

	public void setLeadTime(Integer leadTime) {
		this.leadTime = leadTime;
	}

	public Integer getLeadTime() {
		return leadTime;
	}

	public String getItemPosicao() {
		return itemPosicao;
	}

	public void setItemPosicao(String itemPosicao) {
		this.itemPosicao = itemPosicao;
	}

	public Double getQtdeAtendida() {
		return qtdeAtendida;
	}

	public void setQtdeAtendida(Double qtdeAtendida) {
		this.qtdeAtendida = qtdeAtendida;
	}

	public Date getDtEntrega() {
		return dtEntrega;
	}

	public void setDtEntrega(Date dtEntrega) {
		this.dtEntrega = dtEntrega;
	}

	public Double getVlTotal() {
		return vlTotal;
	}

	public void setVlTotal(Double vlTotal) {
		this.vlTotal = vlTotal;
	}

	public Double getIpi() {
		return ipi;
	}

	public void setIpi(Double ipi) {
		this.ipi = ipi;
	}

	public String getSegUniMedida() {
		return segUniMedida;
	}

	public void setSegUniMedida(String segUniMedida) {
		this.segUniMedida = segUniMedida;
	}

	public String getStatusProduto() {
		return statusProduto;
	}

	public void setStatusProduto(String statusProduto) {
		this.statusProduto = statusProduto;
	}

	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public Double getPontoPedido() {
		return pontoPedido;
	}

	public void setPontoPedido(Double pontoPedido) {
		this.pontoPedido = pontoPedido;
	}

	public Double getLoteEconomico() {
		return loteEconomico;
	}

	public void setLoteEconomico(Double loteEconomico) {
		this.loteEconomico = loteEconomico;
	}

	public Long getDiasFaltantes() {
		return diasFaltantes;
	}

	public void setDiasFaltantes(Long diasFaltantes) {
		this.diasFaltantes = diasFaltantes;
	}

	public Double getPreco() {
		return preco;
	}

	public void setPreco(Double preco) {
		this.preco = preco;
	}

	public Double getIcms() {
		return icms;
	}

	public void setIcms(Double icms) {
		this.icms = icms;
	}

	public Date getVigencia() {
		return vigencia;
	}

	public void setVigencia(Date vigencia) {
		this.vigencia = vigencia;
	}

	public Double getSaldoAtual() {
		return saldoAtual;
	}

	public void setSaldoAtual(Double saldoAtual) {
		this.saldoAtual = saldoAtual;
	}

	public String getFilial() {
		return filial;
	}

	public void setFilial(String filial) {
		this.filial = filial;
	}

	public String getItemPosicaoSol() {
		return itemPosicaoSol;
	}

	public void setItemPosicaoSol(String itemPosicaoSol) {
		this.itemPosicaoSol = itemPosicaoSol;
	}

	public String getCodigoProjeto() {
		return codigoProjeto;
	}

	public void setCodigoProjeto(String codigoProjeto) {
		this.codigoProjeto = codigoProjeto;
	}
	
	public String getGrupoPai() {
		return grupoPai;
	}

	public void setGrupoPai(String grupoPai) {
		this.grupoPai = grupoPai;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((centroCusto == null) ? 0 : centroCusto.hashCode());
		result = prime * result + ((codigo == null) ? 0 : codigo.hashCode());
		result = prime * result
				+ ((descricao == null) ? 0 : descricao.hashCode());
		result = prime * result + ((local == null) ? 0 : local.hashCode());
		result = prime * result
				+ ((necessidade == null) ? 0 : necessidade.hashCode());
		result = prime * result
				+ ((observacao == null) ? 0 : observacao.hashCode());
		result = prime * result
				+ ((ordemProd == null) ? 0 : ordemProd.hashCode());
		result = prime * result
				+ ((quantidade == null) ? 0 : quantidade.hashCode());
		result = prime * result
				+ ((unidMedida == null) ? 0 : unidMedida.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		ProdutoBean other = (ProdutoBean) obj;
		if (centroCusto == null) {
			if (other.centroCusto != null)
				return false;
		} else if (!centroCusto.equals(other.centroCusto))
			return false;
		if (codigo == null) {
			if (other.codigo != null)
				return false;
		} else if (!codigo.equals(other.codigo))
			return false;
		if (descricao == null) {
			if (other.descricao != null)
				return false;
		} else if (!descricao.equals(other.descricao))
			return false;
		if (local == null) {
			if (other.local != null)
				return false;
		} else if (!local.equals(other.local))
			return false;
		if (necessidade == null) {
			if (other.necessidade != null)
				return false;
		} else if (!necessidade.equals(other.necessidade))
			return false;
		if (observacao == null) {
			if (other.observacao != null)
				return false;
		} else if (!observacao.equals(other.observacao))
			return false;
		if (ordemProd == null) {
			if (other.ordemProd != null)
				return false;
		} else if (!ordemProd.equals(other.ordemProd))
			return false;
		if (quantidade == null) {
			if (other.quantidade != null)
				return false;
		} else if (!quantidade.equals(other.quantidade))
			return false;
		if (unidMedida == null) {
			if (other.unidMedida != null)
				return false;
		} else if (!unidMedida.equals(other.unidMedida))
			return false;
		return true;
	}

	@Override
	public int compareTo(ProdutoBean o) {
		return this.getStatusProduto().compareTo(o.getStatusProduto());
	}

}
